package com.wk.warehouse.service;

import com.alibaba.fastjson.JSONObject;
import com.wk.warehouse.entity.Product;
import com.wk.warehouse.page.Page;

import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

public interface ProductService {

	/**
	 * 查询商品信息
	 */
	public List<Product> selectProductMess(Product product, Page page);
	
	/**
	 * 查询商品总数
	 */
	public int selectCount(Product product);
	
	/**
	 * 修改商品
	 */
	public int updateProduct(Product product);

	/**
	 * 修改源商品库存
	 */
	public int updateSourceInvent(int sourceProductId, int transNum);

	/**
	 * 修改目标商品库存
	 */
	public int updateTargetInvent(int targetProductId, int transNum);
	
	/**
	 * 添加商品
	 */
	public int addProduct(Product product);
	
	/**
	 * 改变商品的上下架状态
	 */
	public int changeState(Product product);

	/**
	 * 根据商品编号查商品信息
	 */
	public int findProductByNum(String productNum);

	/**
	 * 根据商品id查商品信息
	 */
	public Product selectProductById(int productId);

	/**
	 * 商品库存
	 */
	public int findProductInvent(int productId);

	/**
	 * 先将结果集插入到商品表，再获取最新的商品id，最后修改插入的信息（仓库id,编号）
	 *	下面两个sql语句需用事务保证一致性，注意product_id不同（查询插入是源商品id，修改时目标商品id）
	 */
	public int insertSelectResult(int productId);
	public int getNewProductId();
	public int updateInsertInfo(Product product);

	/**
	 * 删除单个商品
	 */
	public int deleteProduct(int productId);

	/**
	 * 删除多个商品
	 */
	public int deleteProducts(List<Integer> productIds);
}
